﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Interface;

//Lavet af Visiharan

namespace Model
{
    // Den klasse er lavet af Gruppe 4 DM12a
   public class Booking : IBooking
    {
        DateTime ankomst;
        DateTime afrejse;
        int antalVærelser;
        int antalPersoner;
        int bookingId;

        List<IVærelse> mineVærelser;
        List<IForbrug> mineForbrug;

        public Booking(DateTime ankomst, DateTime afrejse, int antalVærelser, int antalPersoner, int bookingId)
        {
            this.ankomst = ankomst;
            this.afrejse = afrejse;
            this.antalPersoner = antalPersoner;
            this.antalVærelser = antalVærelser;
            this.bookingId = bookingId;

            mineVærelser = new List<IVærelse>();
            mineForbrug = new List<IForbrug>();
        }

        public List<IVærelse> MineVærelser
        {
            get { return mineVærelser; }
            set { mineVærelser = value; }
        }

        public List<IForbrug> Mineforbrug
        {
            get { return mineForbrug; }
            set { mineForbrug = value; }
        }

        #region Properties

        public DateTime Ankomst
        {
            get { return ankomst; }
            set { ankomst = value; }
        }

        public DateTime Afrejse
        {
            get { return afrejse; }
            set { afrejse = value; }
        }

        public int AntalPersoner
        {
            get { return antalPersoner; }
            set { antalPersoner = value; }
        }

        public int AntalVærelser
        {
            get { return antalVærelser; }
            set { antalVærelser = value; }
        }
        public int BookingId
        {
            get { return bookingId; }
            set { bookingId = value; }
        }
#endregion

        public void TilknytVærelse(Værelse værelse)
        {
            if (!FindesVærelse(værelse))
            {
                mineVærelser.Add(værelse);
            }
        }

        public void TilknytForbrug(Forbrug forbrug)
        {
            mineForbrug.Add(forbrug);
        }

        private bool FindesVærelse(Værelse værelse)
        {
            return mineVærelser.Contains(værelse);
        }
    }
}
